package com.foftact.cave.service;

import com.foftact.cave.Cave;

import java.util.List;

/**
 * 持仓与跟踪指数服务接口
 */
public interface CaveService {
    /**
     * 保存持仓数据（新增或更新）
     * @param cave 持仓数据
     * @return 操作结果（true成功，false失败）
     */
    boolean saveCave(Cave cave);

    /**
     * 根据代码删除持仓数据
     * @param code 持仓代码
     * @return 操作结果（true成功，false失败）
     */
    boolean deleteCaveByCode(String code);

    /**
     * 根据ID删除持仓数据
     * @param id 主键ID
     * @return 操作结果（true成功，false失败）
     */
    boolean deleteCaveById(Long id);

    /**
     * 根据代码获取持仓数据
     * @param code 持仓代码
     * @return 持仓数据对象
     */
    Cave getCaveByCode(String code);

    /**
     * 根据ID获取持仓数据
     * @param id 主键ID
     * @return 持仓数据对象
     */
    Cave getCaveById(Long id);

    /**
     * 根据跟踪指数代码获取持仓数据列表
     * @param refcode 跟踪指数代码
     * @return 持仓数据列表
     */
    List<Cave> getCaveListByRefcode(String refcode);

    /**
     * 获取所有持仓数据
     * @return 持仓数据列表
     */
    List<Cave> getAllCaves();

    /**
     * 根据关键字搜索持仓数据
     * @param keyword 搜索关键字
     * @return 持仓数据列表
     */
    List<Cave> searchCavesByKeyword(String keyword);
}